import { Navigate, useLocation } from 'react-router-dom';
import React from 'react';
import { useAuth } from './auth-provider' // 引入验证上下文

export function RequireAuth({ children }: any) {
    let auth: any = useAuth() // 获取验证对象
    let location = useLocation() // 获取URL参数

    if (auth && !auth.user) {
        console.log('未登录', auth);
        // 未登入，使用Navigate组件重定向到登录页，传入state属性以保存当前URL位置信息
        return <Navigate to='/login' state={{ from: location }} replace />;
    }

    // 验证通过，返回插槽内容，例如： ProtectedPage 页面(显示页面)
    return children;
}

export default RequireAuth;